<?php

namespace app\api\controller;

use app\common\controller\Api;
use EasyWeChat\Factory;
use think\Db;

use think\Config;



/**
 * 模版消息
 */
class Template extends Api
{
    protected $noNeedLogin = ['*'];
    protected $noNeedRight = ['*'];

    protected $stores = null;


    /**微信相关  start
     *  ┏┻━━━━━━━━━┻┓
     *  ┃           ┃
     *  ┃ ┗┳     ┳┛ ┃
     *  ┃     ┻     ┃
     *  ┗━━━┓　┏━━━━┛
     *      ┃　┃
     *      ┃　┃
     *      ┃　┗━━━━━━━━━━┓
     *      ┃     He      ┣┓
     *      ┃　          ┏┛
     *      ┗━┓  ┏━━━┓  ┏┛
     *        ┗━━┛   ┗━━┛
     */

   












    /**
     * 发送家长消息
     * @ApiInternal()
     * @param string $com_openid 微信openid
     * @param string $keyword1 时间
     * @param string $keyword2 地点
     * @param string $keyword3 学生名
     * @param string $url 监控图片
     * @return void
     */
    public function send_parent_template($com_openid='o0kt76ZCpj8g2HhO8IctpJIwWyu4',$keyword1=null,$keyword2="校门",$keyword3="小张",$url=null,$status=null)
    {

        if(!$keyword1){
            $keyword1 = date('Y年m月d号H:i:s');
        }

        if(!$url){
            $url = $this->request->domain();
        }

        
        $app = $this->get_wx_gzh_app();    
        $data = $app->template_message->send([
            'touser' => $com_openid,//微信openid,
            'template_id' => 'OdD8uIe3rLvIhiQD9NbcT-mORtUUxH2ouSexTfcYOBM',
            'url' => $url,//点击模版消息打开的页面地址
     
            'data' => [
                'first' =>['刷卡'.$status.'成功，祝福宝贝（'.$keyword3.'）健康快乐','#173177'],
                'keyword1' =>[$keyword1,'#223177'],//刷卡时间
                'keyword2' =>[$keyword2,'#333177'],//刷卡地点
                'keyword3' =>[$keyword3,'#173177'],//持卡人
                'remark' =>['请忽略本条信息','#173199'],

            ],
        ]);
        if($data['errmsg']=='ok'){
            $this->success('发送成功！，可正常收到微信模版消息','/');
        }else{
            $this->error('发送失败'.$data['errmsg']);
        }
    }

     /**
     * 测试发送家长消息
     * @ApiInternal()
     * @param string $com_openid 微信openid
     * @param string $keyword1 时间
     * @param string $keyword2 地点
     * @param string $keyword3 学生名
     * @param string $url 监控图片
     * @return void
     */
    public function test_send_parent_template($uid)
    {
        $com_openid=Db::name('user')->where('id',$uid)->value('openid');
        $keyword1=null;
        $keyword2="校门";
        $keyword3="测试";
        if(!$keyword1){
            $keyword1 = date('Y年m月d号H:i:s');
        }

        
        $url = $this->request->domain();
        

        
        $app = $this->get_wx_gzh_app();    

        $data = $app->template_message->send([
            'touser' => $com_openid,//微信openid,
            'template_id' => 'OdD8uIe3rLvIhiQD9NbcT-mORtUUxH2ouSexTfcYOBM',
            'url' => $url,//点击模版消息打开的页面地址
     
            'data' => [
                'first' =>['测试刷卡成功，祝福宝贝（'.$keyword3.'）健康快乐','#173177'],
                'keyword1' =>[$keyword1,'#223177'],//刷卡时间
                'keyword2' =>[$keyword2,'#333177'],//刷卡地点
                'keyword3' =>[$keyword3,'#173177'],//持卡人
                'remark' =>['请忽略本条测试信息','#173199'],

            ],
        ]);
        if($data['errmsg']=='ok'){
            return true;
            // $this->success('发送成功！，可正常收到微信模版消息','/');
        }else{
            return false;
            // $this->error('发送失败,请关注公众号'.$data['errmsg']);
        }
    }




    


    /**
     * 发送消息
     *
     * @param string $card
     * @return void
     */
    public function send_msg($card=null,$url='http://www.hellomida.com/',$status=null)
    {
        $student = Db::name('student')->where('card',$card)->find();
        if(!$student){
            $this->error('该卡号没有绑定学生');
        }
        try {
                //发送母亲模版消息
            if($student['mom_id']){
                $com_openid = Db::name('user')->where('id',$student['mom_id'])->value('openid');
                $this->send_parent_template($com_openid,null,'校门2',$student['name'],$url,$status);
            }

        } catch (\Throwable $th) {
            //throw $th;
        }
        

        try {
              //发送父亲模版消息
            if($student['dad_id']){
                $com_openid = Db::name('user')->where('id',$student['dad_id'])->value('openid');
                $this->send_parent_template($com_openid,null,'校门3',$student['name'],$url,$status);
            }
        } catch (\Throwable $th) {
            //throw $th;
        }
      

        //发送班主任模版消息
        // if($student['dad_id']){
        //     $com_openid = Db::name('user')->where('id',$student['dad_id'])->value('openid');
        //     $this->send_parent_template($com_openid,null,'校门',$student['name'],$url,$status);
        // }
    }

    
    /**
     * 获取微信公众号
     * @ApiWeigh (997)
     * @ApiInternal()
     * @return void
     */
    protected function get_wx_gzh_app()
    {
         $config = [
             'app_id' => Config('site.wx_app_id'),//,
             'secret' => Config('site.wx_secret'),//,
         
             // 指定 API 调用返回结果的类型：array(default)/collection/object/raw/自定义类名
             'response_type' => 'array',
         
             //...
         ];
         
         $app = Factory::officialAccount($config);

         return $app;
    }



    /**微信相关  end
     *  ┏┻━━━━━━━━━┻┓
     *  ┃           ┃
     *  ┃ ┗┳     ┳┛ ┃
     *  ┃     ┻     ┃
     *  ┗━━━┓　┏━━━━┛
     *      ┃　┃
     *      ┃　┃
     *      ┃　┗━━━━━━━━━━┓
     *      ┃     He      ┣┓
     *      ┃　          ┏┛
     *      ┗━┓  ┏━━━┓  ┏┛
     *        ┗━━┛   ┗━━┛
     */





}